Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

MengFanjun的博客

一、电路连接

LCD1602IIC

LCD1602IIC引脚 Arduino引脚
VCC 5V
GND GND
SDA A4
SCL A5

我这里的LCD1602是IIC的,所以只需要4根线

在这里插入图片描述 ## 1-WIRE

传感器引脚 Arduino引脚
- GND
S 8
+ 5V

在这里插入图片描述 中间的线是要接5V的

二、程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <dht11.h>   //引用dht11库文件,使得下面可以调用相关参数
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //引用I2C库
#define dht11Pin 8 //定义温湿度针脚号为8号引脚
dht11 dht; //实例化一个对象
LiquidCrystal_I2C lcd(0x27,16,2); //这里是0x27

void setup() //初始化函数,只执行一次
{
Serial.begin(9600); //设置波特率参数
pinMode(dht11Pin, OUTPUT); //通过定义将Arduino开发板上dht11Pin引脚(8号口)的工作模式转化为输出模式

lcd.init(); // 初始化LCD
lcd.backlight(); //设置LCD背景等亮

lcd.setCursor(0,0);
lcd.print(" Thermometer ");
delay(2000);
lcd.clear();
}

void loop() //loop函数,重复循环执行
{
SerialTem();
ther();
delay(1000); //延时1秒
}
void ther()//温湿度计
{
int tol = dht.read(dht11Pin); //将读取到的值赋给tol
int temp = (float)dht.temperature; //将温度值赋值给temp
int humi = (float)dht.humidity; //将湿度值赋给humi

lcd.setCursor(0,0);
lcd.print("Tem:");
lcd.setCursor(4,0);
lcd.print(temp);
lcd.setCursor(6,0);
lcd.print("C");

lcd.setCursor(0,1);
lcd.print("Hum:");
lcd.setCursor(4,1);
lcd.print(humi);
lcd.setCursor(6,1);
lcd.print("%");
}
void SerialTem()//串口打印温度湿度
{
int tol = dht.read(dht11Pin); //将读取到的值赋给tol
int temp = (float)dht.temperature; //将温度值赋值给temp
int humi = (float)dht.humidity; //将湿度值赋给humi
Serial.print("Temperature:"); //在串口打印出Tempeature:
Serial.print(temp); //在串口打印温度结果
Serial.println(".C"); //在串口打印出℃
Serial.print("Humidity:"); //在串口打印出Humidity:
Serial.print(humi); //在串口打印出湿度结果
Serial.println("%"); //在串口打印出%
}

三、效果

请添加图片描述

评论